library(readr); library(dplyr); library(stringr); library(lubridate)
install.packages("plotly")
plasticContainer <- list(
  greenBox=c("paper","scissor"),     # location 1
  redBox=c(1L,3L,2.5),               # location 2
  blueBox=c(TRUE,FALSE,TRUE,TRUE)    # location 3
)
download.file("https://github.com/tpemartin/github-data/blob/master/plotly_4070_neda.Rda?raw=true",destfile = "plotly_4070_neda.Rda")
嘗試 URL 'https://github.com/tpemartin/github-data/blob/master/plotly_4070_neda.Rda?raw=true'
Content type 'application/octet-stream' length 12400 bytes (12 KB)
==================================================
downloaded 12 KB
load("plotly_4070_neda.Rda")
library(plotly)
Loading required package: ggplot2

Attaching package: ‘plotly’

The following object is masked from ‘package:ggplot2’:

    last_plot

The following object is masked from ‘package:stats’:

    filter

The following object is masked from ‘package:graphics’:

    layout
plotly_4070_neda
plasticContainer[c("greenBox")] # or plasticContainer[c(1,2)]
$greenBox
[1] "paper"   "scissor"
plasticContainer["greenBox"] # or plasticContainer[c(1,2)]
$greenBox
[1] "paper"   "scissor"
plasticContainer[["greenBox"]] # or plasticContainer[[1]]
[1] "paper"   "scissor"
plasticContainer["greenBox"][[1]][1]
[1] "paper"
plasticContainer[["greenBox"]][1]
[1] "paper"
plotly_4070_neda$x$layout$shapes[[1]]$opacity<-0.8
plotly_4070_neda
library(readr)
transcriptData <- read_csv("https://raw.githubusercontent.com/tpemartin/github-data/master/transcript100_102.csv",
                  col_types = cols(
                    學期成績="n"
                  ))
totalCredits<-function(x){
  transcriptData[transcriptData$學號==x,]->subsample 
  subsample %>%
    mutate(
      及格=(學期成績>=60)
    ) %>%
    summarise(
      學號=學號[1],
      總修習學分數=sum(學分數),
      總實得學分數=sum(學分數[及格])
    )  
}
transcriptData %>%
  filter(學屆==100,str_sub(學號,5,6)=="P1") -> subsample
subsample$學號 %>% unique -> 符合條件學號
transcriptData->subsample
subsample %>%unique->符合條件學號
seq_along(符合條件學號)
creditResults<-vector("list",length(符合條件學號))

for(i in seq_along(符合條件學號)){
  creditResults[[i]] <- totalCredits(符合條件學號[i])
}
creditResults[[200]]
LS0tCnRpdGxlOiAiMjAxOC0xMi0yNiIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpgYGB7cn0KbGlicmFyeShyZWFkcik7IGxpYnJhcnkoZHBseXIpOyBsaWJyYXJ5KHN0cmluZ3IpOyBsaWJyYXJ5KGx1YnJpZGF0ZSkKYGBgCgpgYGB7cn0KaW5zdGFsbC5wYWNrYWdlcygicGxvdGx5IikKYGBgCgpgYGB7cn0KcGxhc3RpY0NvbnRhaW5lciA8LSBsaXN0KAogIGdyZWVuQm94PWMoInBhcGVyIiwic2Npc3NvciIpLCAgICAgIyBsb2NhdGlvbiAxCiAgcmVkQm94PWMoMUwsM0wsMi41KSwgICAgICAgICAgICAgICAjIGxvY2F0aW9uIDIKICBibHVlQm94PWMoVFJVRSxGQUxTRSxUUlVFLFRSVUUpICAgICMgbG9jYXRpb24gMwopCmBgYAoKYGBge3J9CmRvd25sb2FkLmZpbGUoImh0dHBzOi8vZ2l0aHViLmNvbS90cGVtYXJ0aW4vZ2l0aHViLWRhdGEvYmxvYi9tYXN0ZXIvcGxvdGx5XzQwNzBfbmVkYS5SZGE/cmF3PXRydWUiLGRlc3RmaWxlID0gInBsb3RseV80MDcwX25lZGEuUmRhIikKbG9hZCgicGxvdGx5XzQwNzBfbmVkYS5SZGEiKQpsaWJyYXJ5KHBsb3RseSkKcGxvdGx5XzQwNzBfbmVkYQpgYGAKCmBgYHtyfQpwbGFzdGljQ29udGFpbmVyW2MoImdyZWVuQm94IildICMgb3IgcGxhc3RpY0NvbnRhaW5lcltjKDEsMildCnBsYXN0aWNDb250YWluZXJbImdyZWVuQm94Il0gIyBvciBwbGFzdGljQ29udGFpbmVyW2MoMSwyKV0KYGBgCgpgYGB7cn0KcGxhc3RpY0NvbnRhaW5lcltbImdyZWVuQm94Il1dICMgb3IgcGxhc3RpY0NvbnRhaW5lcltbMV1dCmBgYAoKYGBge3J9CnBsYXN0aWNDb250YWluZXJbImdyZWVuQm94Il1bWzFdXVsxXQpwbGFzdGljQ29udGFpbmVyW1siZ3JlZW5Cb3giXV1bMV0KYGBgCgpgYGB7cn0KcGxvdGx5XzQwNzBfbmVkYSR4JGxheW91dCRzaGFwZXNbWzFdXSRvcGFjaXR5PC0wLjgKcGxvdGx5XzQwNzBfbmVkYQpgYGAKCmBgYHtyfQpsaWJyYXJ5KHJlYWRyKQp0cmFuc2NyaXB0RGF0YSA8LSByZWFkX2NzdigiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3RwZW1hcnRpbi9naXRodWItZGF0YS9tYXN0ZXIvdHJhbnNjcmlwdDEwMF8xMDIuY3N2IiwKICAgICAgICAgICAgICAgICAgY29sX3R5cGVzID0gY29scygKICAgICAgICAgICAgICAgICAgICDlrbjmnJ/miJDnuL49Im4iCiAgICAgICAgICAgICAgICAgICkpCgp0b3RhbENyZWRpdHM8LWZ1bmN0aW9uKHgpewogIHRyYW5zY3JpcHREYXRhW3RyYW5zY3JpcHREYXRhJOWtuOiZnz09eCxdLT5zdWJzYW1wbGUgCiAgc3Vic2FtcGxlICU+JQogICAgbXV0YXRlKAogICAgICDlj4rmoLw9KOWtuOacn+aIkOe4vj49NjApCiAgICApICU+JQogICAgc3VtbWFyaXNlKAogICAgICDlrbjomZ895a246JmfWzFdLAogICAgICDnuL3kv67nv5LlrbjliIbmlbg9c3VtKOWtuOWIhuaVuCksCiAgICAgIOe4veWvpuW+l+WtuOWIhuaVuD1zdW0o5a245YiG5pW4W+WPiuagvF0pCiAgICApICAKfQpgYGAKCmBgYHtyfQp0cmFuc2NyaXB0RGF0YSAlPiUKICBmaWx0ZXIo5a245bGGPT0xMDAsc3RyX3N1YijlrbjomZ8sNSw2KT09IlAxIikgLT4gc3Vic2FtcGxlCnN1YnNhbXBsZSTlrbjomZ8gJT4lIHVuaXF1ZSAtPiDnrKblkIjmop3ku7blrbjomZ8KYGBgCgpgYGB7cn0KdHJhbnNjcmlwdERhdGEtPnN1YnNhbXBsZQpzdWJzYW1wbGUgJT4ldW5pcXVlLT7nrKblkIjmop3ku7blrbjomZ8KYGBgCgpgYGB7cn0Kc2VxX2Fsb25nKOespuWQiOaineS7tuWtuOiZnykKYGBgCgpgYGB7cn0KY3JlZGl0UmVzdWx0czwtdmVjdG9yKCJsaXN0IixsZW5ndGgo56ym5ZCI5qKd5Lu25a246JmfKSkKCmZvcihpIGluIHNlcV9hbG9uZyjnrKblkIjmop3ku7blrbjomZ8pKXsKICBjcmVkaXRSZXN1bHRzW1tpXV0gPC0gdG90YWxDcmVkaXRzKOespuWQiOaineS7tuWtuOiZn1tpXSkKfQpgYGAKCmBgYHtyfQpjcmVkaXRSZXN1bHRzW1syMDBdXQpgYGAKCg==